Make extra sure we release the surface properly. Also make sure that the
released surface doesn't keep any references to us.
_gdk_window_destroy (window, TRUE);
}
+ gdk_window_drop_cairo_surface (obj);
+
if (obj->impl)
{
g_object_unref (obj->impl);
private->width,
private->height)))
{
- cairo_surface_destroy (private->cairo_surface);
- private->cairo_surface = NULL;
+ gdk_window_drop_cairo_surface (private);
}
}
cairo_surface_finish (private->cairo_surface);
cairo_surface_set_user_data (private->cairo_surface, &gdk_window_cairo_key,
NULL, NULL);
+ private->cairo_surface = NULL;
}
}